/**
 * 课程类型定义导出
 * @description 导出所有课程相关的类型定义
 */

// 课程实体类型
export type {
  ICourse,
  ICourseCreateRequest,
  ICourseUpdateRequest,
  ICourseQueryParams,
  ICourseStatistics,
  ICourseSummary,
  ICourseDetail
} from './course';

// 课程分类实体类型
export type {
  ICourseCategory,
  ICourseCategoryCreateRequest,
  ICourseCategoryUpdateRequest,
  ICourseCategoryQueryParams,
  ICourseCategoryTreeNode,
  ICourseCategoryStatistics,
  ICourseCategorySummary,
  IPresetCourseCategory,
  ICourseCategoryRelation
} from './courseCategory';

// 课程枚举类型
export {
  CourseStatusEnum,
  CourseStatusText,
  CourseStatusColor,
  CourseCategoryStatusEnum,
  CourseCategoryStatusText,
  CourseCategoryStatusColor,
  CourseLevelEnum,
  CourseLevelText,
  CourseLevelColor,
  CourseMaterialTypeEnum,
  CourseMaterialTypeText,
  CourseActionEnum,
  CourseCategoryActionEnum,
  PresetCourseCategoryEnum,
  PresetCourseCategoryText
} from './enums';

// 课程 API 类型
export type {
  IGetCoursesResponse,
  IGetCourseResponse,
  ICreateCourseResponse,
  IUpdateCourseResponse,
  IDeleteCourseResponse,
  IGetCourseStatisticsResponse,
  IGetCourseSummariesResponse,
  ICourseListRequest,
  ICourseBatchRequest,
  ICourseBatchResponse,
  IGetCourseCategoriesResponse,
  IGetCourseCategoryTreeResponse,
  IGetCourseCategoryResponse,
  ICreateCourseCategoryResponse,
  IUpdateCourseCategoryResponse,
  IDeleteCourseCategoryResponse,
  IGetCourseCategoryStatisticsResponse,
  IGetCourseCategorySummariesResponse,
  ICourseCategoryListRequest,
  ICourseCategoryBatchRequest,
  ICourseCategoryBatchResponse,
  ICourseImportRequest,
  ICourseImportResponse,
  ICourseExportRequest,
  ICourseSearchSuggestion,
  IGetCourseSuggestionsResponse,
  ICourseCategoryRelationRequest,
  ICourseCategoryRelationResponse
} from './courseApi';

// 课程组件类型
export type {
  ICourseCardProps,
  ICourseFormProps,
  ICourseListProps,
  ICourseSearchProps,
  ICourseSelectorProps,
  ICourseCategoryCardProps,
  ICourseCategoryFormProps,
  ICourseCategorySelectorProps,
  ICourseCategoryTreeProps,
  ICourseActionButtonsProps
} from './courseComponents';